﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Crosland.Offline.Core;

namespace Crosland.Offline.Logic
{
    public class ParametroLogic
    {
        public List<Parametro> GetByCriteria(string idTabla)
        {
            List<Parametro> lstParametros = new List<Parametro>();
            if (idTabla != null && idTabla != "")
            {
                lstParametros = Factory.GetParametroDao().GetByCriteria(idTabla);
            }
            return lstParametros;
        }

        public List<Parametro> ObtenerParametrosPorCategoria(string idTabla)
        {
            List<Parametro> lstParametros = new List<Parametro>();
            if (idTabla != null && idTabla != "")
            {
                lstParametros = Factory.GetParametroDao().GetByCriteria(idTabla);
            }

            Parametro parametro = new Parametro();
            parametro.DesValor = "";
            parametro.DesParametro = "- SELECCIONE -";

            lstParametros.Insert(0, parametro);

            return lstParametros;
        }

        /// <summary>
        /// Permite listar las categorias de parámetros
        /// </summary>
        /// <returns></returns>
        public List<Parametro> ListarParametros()
        {
            return Factory.GetParametroDao().List();
        }

        /// <summary>
        /// Permite actualizar el valor de los parametros
        /// </summary>
        /// <param name="entitys"></param>
        public void ActualizarValorParametros(List<Parametro> entitys)
        {
            try
            {
                foreach(Parametro entity in entitys)
                {
                    Factory.GetParametroDao().Update(entity);
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message, ex);
            }
        }
    }
}
